package com.zqs.takeredpackage.service;

import cn.dev33.satoken.util.SaResult;
import com.zqs.takeredpackage.entity.RedPackage;
import com.zqs.takeredpackage.entity.User;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

public interface RedPackageService {
    /**
     * 获取红包列表
     * @return 红包列表
     */
    List<RedPackage> list();

    /**
     * 获取用户红包列表
     * @return 用户红包列表
     */
    ArrayList<RedPackage> myList();

    /**
     * 获取红包
     * @param redId 红包id
     * @return 红包
     */
    RedPackage get(String redId);

    /**
     * 发红包
     * @param size 红包数量
     * @param money 红包金额
     */
    SaResult set(int size, BigDecimal money);

    /**
     * 抢红包
     * @param redId 红包id
     */
    SaResult take(String redId);

    /**
     * 抢红包用户
     * @param redId 红包id
     * @return 抢红包用户
     */
    SaResult takers(String redId);

    /**
     * 取消红包
     * @param redId 红包id
     */
    void cancel(String redId);

    /**
     * 获取红包排行榜
     */
    ArrayList<User> rank();
}
